package com.w7vm.menuweb.entity;

import java.io.Serializable;
import javax.persistence.*;

import java.util.Date;
import java.util.List;
import java.util.Set;


/**
 * The persistent class for the CardapioLaCarteWeb database table.
 * 
 */
@Entity
@NamedQueries({
	@NamedQuery(name="CardapioLaCarte.findCardapioLaCarteByIDSede", 
			query="SELECT lc" +
					" FROM CardapioLaCarteWeb lc" +
					" JOIN lc.restauranteSedeWeb s " +
					" WHERE s.idRestauranteSedeWeb = :idRestaurante" +
					" AND lc.status = 1"),

	@NamedQuery(name="CardapioLaCarte.findCardapioLaCarteByIDFilial", 
					query="SELECT lc" +
							" FROM CardapioLaCarteWeb lc" +
							" JOIN lc.restauranteFilialWeb f " +
							" WHERE f.idRestauranteFilialWeb = :idRestaurante"),
							
	@NamedQuery(name="CardapioLaCarte.findCardapioLaCarteByID", 
							query="SELECT lc" +
											" FROM CardapioLaCarteWeb lc" +
											" JOIN lc.composicaoCardLaCarteWebs clc " +
											" WHERE lc.idCardapioLaCarteWeb = :idCardapioLaCarte"),
})

public class CardapioLaCarteWeb implements Serializable {
	private static final long serialVersionUID = 1L;

	public static final String FIND_LACARTE_BY_IDRESTAURANTESEDE = "CardapioLaCarte.findCardapioLaCarteByIDSede";
	public static final String FIND_LACARTE_BY_IDRESTAURANTEFILIAL = "CardapioLaCarte.findCardapioLaCarteByIDFilial";
	public static final String FIND_LACARTE_BY_ID = "CardapioLaCarte.findCardapioLaCarteByID";

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private int idCardapioLaCarteWeb;

	@Column(name="Acompanhamento")
	private String acompanhamento;

	@Column(name="Couvert")
	private String couvert;

    @Temporal( TemporalType.DATE)
	@Column(name="DtInicio")
	private Date dtInicio;

    @Temporal( TemporalType.DATE)
	@Column(name="DtTermino")
	private Date dtTermino;
    
    @Temporal( TemporalType.DATE)
	@Column(name="DtCadastro")
	private Date dtCadastro;    

	@Column(name="EntradasFrias")
	private String entradasFrias;

	@Column(name="EntradasQuentes")
	private String entradasQuentes;

	@Column(name="NomePrato")
	private String nomePrato;

	@Column(name="Sobremesa")
	private String sobremesa;

	@Column(name="Status")
	private int status;
	
	@Column(name="DiasSemana")
	private String diasSemana;
	
	@Column(name="Image")
	private String image;

	//bi-directional many-to-one association to PratoSy
    @ManyToOne
	@JoinColumn(name="idPrato")
	private PratoSy pratoSy;

	//bi-directional many-to-one association to RestauranteFilialWeb
    @ManyToOne
	@JoinColumn(name="idRestauranteFilial")
	private RestauranteFilialWeb restauranteFilialWeb;

	//bi-directional many-to-one association to RestauranteSedeWeb
    @ManyToOne
	@JoinColumn(name="idRestauranteSede")
	private RestauranteSedeWeb restauranteSedeWeb;

	//bi-directional many-to-one association to ComposicaoCardLaCarteWeb
	@OneToMany(mappedBy="cardapioLaCarteWeb",fetch=FetchType.EAGER, cascade=CascadeType.ALL,orphanRemoval=true)
	private List<ComposicaoCardLaCarteWeb> composicaoCardLaCarteWebs;

    public CardapioLaCarteWeb() {
    }

	public int getIdCardapioLaCarteWeb() {
		return this.idCardapioLaCarteWeb;
	}

	public void setIdCardapioLaCarteWeb(int idCardapioLaCarteWeb) {
		this.idCardapioLaCarteWeb = idCardapioLaCarteWeb;
	}

	public String getAcompanhamento() {
		return this.acompanhamento;
	}

	public void setAcompanhamento(String acompanhamento) {
		this.acompanhamento = acompanhamento;
	}

	public String getCouvert() {
		return this.couvert;
	}

	public void setCouvert(String couvert) {
		this.couvert = couvert;
	}

	public Date getDtInicio() {
		return this.dtInicio;
	}

	public void setDtInicio(Date dtInicio) {
		this.dtInicio = dtInicio;
	}

	public Date getDtTermino() {
		return this.dtTermino;
	}

	public void setDtTermino(Date dtTermino) {
		this.dtTermino = dtTermino;
	}
	
	public Date getDtCadastro() {
		return this.dtCadastro;
	}

	public void setDtCadastro(Date dtCadastro) {
		this.dtCadastro = dtCadastro;
	}

	public String getEntradasFrias() {
		return this.entradasFrias;
	}

	public void setEntradasFrias(String entradasFrias) {
		this.entradasFrias = entradasFrias;
	}

	public String getEntradasQuentes() {
		return this.entradasQuentes;
	}

	public void setEntradasQuentes(String entradasQuentes) {
		this.entradasQuentes = entradasQuentes;
	}

	public String getNomePrato() {
		return this.nomePrato;
	}

	public void setNomePrato(String nomePrato) {
		this.nomePrato = nomePrato;
	}

	public String getSobremesa() {
		return this.sobremesa;
	}

	public void setSobremesa(String sobremesa) {
		this.sobremesa = sobremesa;
	}

	public int getStatus() {
		return this.status;
	}

	public void setStatus(int status) {
		this.status = status;
	}

	public PratoSy getPratoSy() {
		return this.pratoSy;
	}

	public void setPratoSy(PratoSy pratoSy) {
		this.pratoSy = pratoSy;
	}
	
	public RestauranteFilialWeb getRestauranteFilialWeb() {
		return this.restauranteFilialWeb;
	}

	public void setRestauranteFilialWeb(RestauranteFilialWeb restauranteFilialWeb) {
		this.restauranteFilialWeb = restauranteFilialWeb;
	}
	
	public RestauranteSedeWeb getRestauranteSedeWeb() {
		return this.restauranteSedeWeb;
	}

	public void setRestauranteSedeWeb(RestauranteSedeWeb restauranteSedeWeb) {
		this.restauranteSedeWeb = restauranteSedeWeb;
	}
	
	public List<ComposicaoCardLaCarteWeb> getComposicaoCardLaCarteWebs() {
		return this.composicaoCardLaCarteWebs;
	}

	public void setComposicaoCardLaCarteWebs(List<ComposicaoCardLaCarteWeb> composicaoCardLaCarteWebs) {
		this.composicaoCardLaCarteWebs = composicaoCardLaCarteWebs;
	}

	public String getDiasSemana() {
		return diasSemana;
	}

	public void setDiasSemana(String diasSemana) {
		this.diasSemana = diasSemana;
	}

	public String getImage() {
		return image;
	}

	public void setImage(String image) {
		this.image = image;
	}
	
}